package org.example.maven.service;

import org.example.maven.pojo.ClassificationTree;
import org.example.maven.pojo.classification.ClassificationCategoryAdd;
import org.example.maven.pojo.classification.ClassificationSubcategoryAdd;
import org.example.maven.pojo.classification.table.ClassificationCategoryList;
import org.example.maven.pojo.classification.table.EditClassification;
import org.example.maven.pojo.classification.table.SearchClassification;
import org.example.maven.pojo.eCharts.CategoryStatsDTO;


import java.util.List;
import java.util.Map;

public interface ClassificationService {
    //获取分类select的选项
    List<ClassificationTree> getClassification();

    //获取二级分类的id
    Integer getSpecificClassification(String subId);

    //根据分类名字获取分类id
    String getClassificationIdBySubcategory(String subcategory);

    //获取所有分类信息展示在table里
    List<ClassificationCategoryList> getClassificationListTableTest(Integer pageNum, Integer pageSize);

    //获取分类的总数
    Integer getClassificationListCount(SearchClassification searchClassification);
    //获取特定的分类
    List<ClassificationCategoryList> getSpecieClassification(Integer pageNum, Integer pageSize, SearchClassification searchClassification);

    //获取编辑的分类信息
    EditClassification getEditClassification(String id);

    //修改分类的状态为停用
    void updateClassificationIsDeactivate(String []id);
    //修改分类的状态为启用
    void setClassificationIsDeactivate1(String[] id);

    //修改子分类的状态为停用
    void setClassificationSubcategory0(String[] id);

    //修改子分类的状态为启用
    void setClassificationSubcategory1(String[] id);

    //获取一级分类
    List<Map<String,String>> getClassificationCategory();

    //添加一级分类
    void addClassificationCategory(ClassificationCategoryAdd classificationCategoryAdd);

    //添加二级分类
    void addClassificationSubcategory(ClassificationSubcategoryAdd classificationSubcategoryAdd);

    //修改一级分类
    void updateClassificationCategory(EditClassification editClassification);

    //修改二级分类
    void updateClassificationSubcategory(EditClassification editClassification);

    //获取分类藏品的柱状图
    List<CategoryStatsDTO> getCategoryEcharts();

}
